﻿#ifndef ___QUICK_PCLIB_H___
#define ___QUICK_PCLIB_H___

/*********************************************************************/
//【库介绍】
//pcquicklib库[pclib库]，仅用头文件封装了跨平台的基础。
//使用了c++11语法，要求编译器选项开启-std=c++11
//windows要求vs2010及其以上才能编译；支持xp；整个头文件没有用到mfc。
//linux下要求链接pthread/rt/dl库
//android下要求NDK16及以上；要求链接dl库。最低支持的ANDROID_NATIVE_API_LEVEL=21，即为android 5.0及以上。Application.mk中需设置APP_PLATFORM := android-21 
//macos/ios/freebsd已经支持。CPCSysUtil部分未充分测试，可能有问题。
//提示：如果windows下编译不通过，建议项目加上WIN32_LEAN_AND_MEAN宏且移除#include<winhttp.h>
/*********************************************************************/
//【使用方法】
//1.将pcquicklib文件夹拷贝到你的项目能引用的地方
//2.包含主头文件：#include "pcquicklib/pcquicklib.h"   即可使用了。
//3.可以开启可选功能，需定义以下宏，需要在cmake工程文件中链接对应的库和包含对应库的头文件路径
//  ADD_DEFINITIONS(-DPCHAVE_OPENSSL)       //openssl
//  ADD_DEFINITIONS(-DPCHAVE_LIBSSH2)       //libssh2 如果要使用，通常还需要定义LIBSSH2_OPENSSL
//  ADD_DEFINITIONS(-DPCHAVE_ZLIB)          //zlib
//  ADD_DEFINITIONS(-DPCHAVE_SQLITE3)       //sqlite3
//  ADD_DEFINITIONS(-DPCHAVE_MONGODB)       //mongodb
//  ADD_DEFINITIONS(-DPCHAVE_LIBFFI)		//libffi
//  ADD_DEFINITIONS(-DPCHAVE_LIBDBUS)       //libdbus
/*********************************************************************/

//这些模块都是可以单独使用的
#include "m_core/m_core.hpp"		//核心部分，包括宏和数据类型定义/时间/日志/多线程/编码/文件和字符串工具等
#include "m_crypto/m_crypto.hpp"	//加解密部分，包括几个简单的算法：3des/md5/sha1/sm4/随机数/crc等
#include "m_format/m_format.hpp"	//格式处理，如json/xml/ini/zip等
#include "m_sys/m_sys.hpp"			//系统部分，包括系统信息/文件目录监控/热键处理等
#include "m_ffi/m_ffi.hpp"			//和C模块交互部分，主要处理c动态库的加载和动态调用等
#include "m_io/m_io.hpp"			//输入输出，网络/文件/串口/蓝牙等IO功能
#include "m_db/m_db.hpp"			//数据库操作，目前支持sqlite3



#endif    //___QUICK_PCLIB_H___
